AWK সাধারণত ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, তবে এতে বিল্ট-ইন sort
ফাংশন নেই। তবে, AWK এ আমরা ডেটা সনির্দিষ্টভাবে সাজানোর জন্য কাস্টম ফাংশন তৈরি করতে পারি। এখানে, AWK এ কীভাবে ডেটা সনির্দিষ্টভাবে সাজানো যায় এবং কাস্টম সোর্ট ফাংশন ব্যবহার করা যায় তার উদাহরণ দেওয়া হলো।
যদিও AWK নিজে থেকেই ডেটা সোর্ট করার জন্য বিল্ট-ইন ফাংশন সরবরাহ করে না, AWK স্ক্রিপ্টের মধ্যে অ্যারে ব্যবহার করে এবং বাইরের কমান্ড যেমন sort
ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো যায়।
sort
কমান্ড ব্যবহারAWK এর আউটপুট পাইপলাইনের মাধ্যমে sort
কমান্ডে পাঠিয়ে সহজেই ডেটা সনির্দিষ্টভাবে সাজানো যায়।
awk '{print $1, $2}' filename.txt | sort -k2,2n
এখানে, filename.txt
ফাইলের প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করা হয়েছে এবং sort -k2,2n
দ্বারা দ্বিতীয় কলাম অনুযায়ী সনির্দিষ্টভাবে সাজানো হয়েছে।
AWK এ কাস্টম সোর্ট ফাংশন তৈরি করতে অ্যারে এবং একটি ফাংশন ব্যবহার করে আমরা নিজেরাই ডেটা সনির্দিষ্টভাবে সাজাতে পারি। নিচে একটি কাস্টম সোর্ট ফাংশনের উদাহরণ দেওয়া হলো।
awk '
function bubble_sort(array, n) {
for (i = 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
if (array[i] > array[j]) {
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
}
BEGIN {
# ডেটা অ্যারেতে যোগ করা
data[1] = 42
data[2] = 15
data[3] = 27
data[4] = 33
data[5] = 19
n = 5 # অ্যারের দৈর্ঘ্য
# সোর্ট ফাংশন কল করা
bubble_sort(data, n)
# সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা
for (i = 1; i <= n; i++) {
print data[i]
}
}
'
বর্ণনা:
bubble_sort
নামের একটি ফাংশন তৈরি করা হয়েছে, যা বুদ্বুদ সনির্দিষ্ট পদ্ধতি ব্যবহার করে অ্যারেকে সনির্দিষ্টভাবে সাজায়।temp
ভেরিয়েবল ব্যবহার করে অ্যারের মান অদলবদল করা হয়েছে।BEGIN
ব্লকে অ্যারে তৈরি করা হয়েছে এবং সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা হয়েছে।আউটপুট:
15
19
27
33
42
আপনি ফাইল থেকে ডেটা পড়ে এবং অ্যারেতে সংরক্ষণ করে কাস্টম সোর্ট ফাংশন ব্যবহার করতে পারেন।
awk '
function bubble_sort(array, n) {
for (i = 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
if (array[i] > array[j]) {
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
}
{
data[NR] = $1 # ফাইলের প্রতিটি লাইনের প্রথম কলাম অ্যারেতে যোগ করা
count = NR
}
END {
bubble_sort(data, count) # সনির্দিষ্ট ফাংশন কল করা
for (i = 1; i <= count; i++) {
print data[i]
}
}
' filename.txt
বর্ণনা:
data
অ্যারেতে সংরক্ষণ করা হয়েছে।END
ব্লকে bubble_sort
ফাংশন ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো হয়েছে এবং প্রিন্ট করা হয়েছে।AWK এ ডেটা সনির্দিষ্টভাবে সাজানোর জন্য বিল্ট-ইন ফাংশন না থাকলেও আমরা কাস্টম সোর্ট ফাংশন তৈরি করে ডেটা সনির্দিষ্ট করতে পারি। বাইরের sort
কমান্ডের মাধ্যমে সহজভাবে ডেটা সনির্দিষ্ট করা যায়, তবে জটিল কাজের জন্য কাস্টম ফাংশন তৈরি করা প্রয়োজন হতে পারে। AWK এ অ্যারে এবং লজিক্যাল অপারেটর ব্যবহার করে আপনি আপনার নিজের সনির্দিষ্ট ফাংশন তৈরি করতে পারেন যা ডেটা প্রক্রিয়াকরণের ক্ষমতা বাড়ায়।
common.read_more